//
// Created by wkm on 2024-04-26.
//

#ifndef AES128CHIPSYSTEMC_CONSTANT_H
#define AES128CHIPSYSTEMC_CONSTANT_H

#include "systemc.h"

#define DATA_SIZE 8
#define ADDR_WIDTH 8
#define WORD_DEPTH 256

enum exe_state {
    // 该枚举用来给每个模块对外呈现的执行状态， 其含义分别是：等待任务、准备执行任务、执行任务过程中、任务完成
    waiting_task, preparing_task, computing_task, task_finished
};

enum basic_op_state {
    // AES算法的步骤主要是 字节代换、行移位、列混淆、轮密钥加，所以以下5个值分别对应
    // 字节代换、行移位、列混淆、轮密钥加、任务完成 的执行阶段
    bytesub, rowshift, mixcolumn, round_xor, goodjob
};

#endif //AES128CHIPSYSTEMC_CONSTANT_H
